Computing technology has contributed enormously to the advancement of humankind. Computing systems come in a wide variety of physical forms including desktop computers, laptop computers, personal digital assistants, telephones, and even devices that have not been conventionally thought of as computing systems such as, for example, refrigerators and automobiles. Thus, a computing system may be any device or system that has a processor and a memory of any type. Computing systems may even have constituent computing systems that collaborate together as in network systems. Accordingly, some computing systems may fit easily into the palm of the hand, while others may be distributed globally.
Computing systems operate at the direction of software. Some software involves interfacing with a user using one or more input devices and a display. The physical form of such input devices and displays may vary considerably given the characteristics of the computing system itself. A user interface is often implemented by rendering elements and controls on the display, and allowing the user to interface with the controls to direct particular actions. Often the interface is implemented in the form of a logical, hierarchical structure of user interface elements. Each of the user interface elements has logic associated with it that permits that user interface to perform certain behaviors.
A wide variety of conventional frameworks, particularly user interface frameworks, use hierarchical user interface element structures to render user interfaces. Such frameworks include, for example, ASP.Net in which such user interface elements are referred to as “user interface controls” or “UI controls”. Examples of user interface elements in the ASP.NET framework include pages, labels, list boxes, buttons, panels, text boxes, maps, datalists, and so forth. However, the types of user interface elements may differ framework by framework.
Many of such conventional frameworks use templates at the level of the user interface element to customize the associated display of the user interface element. Such templates will be referred to as user interface templates, while the user interface elements that contain a user interface template will sometimes be referred to as “templated” user interface elements. The user interface element will be generated using the user interface template such that the template defines the layout, some content characteristics, and/or the look and feel of the user interface element. While the user interface templates are used to apply rules to the generation of the user interface element itself, they are not used to apply rules (e.g., layout, content, look and feel) for arbitrary data contained within user interface elements. Accordingly, it is much more difficult to customize this arbitrary data of a user interface element, as opposed to customizing the user interface element itself.